package com.nbcio.im.core.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.nbcio.im.core.ImFriend;

import java.util.List;

/**
 * IM好友服务接口
 *
 * @author nbacheng
 */
public interface ImFriendService extends IService<ImFriend> {
    
    /**
     * 获取用户好友列表
     *
     * @param userId 用户ID
     * @param tenantId 租户ID
     * @return 好友列表
     */
    List<ImFriend> getFriendList(Long userId, String tenantId);
    
    /**
     * 添加好友
     *
     * @param userId 用户ID
     * @param friendUserId 好友用户ID
     * @param tenantId 租户ID
     * @param remark 备注
     * @return 是否成功
     */
    boolean addFriend(Long userId, Long friendUserId, String tenantId, String remark);
    
    /**
     * 删除好友
     *
     * @param userId 用户ID
     * @param friendUserId 好友用户ID
     * @param tenantId 租户ID
     * @return 是否成功
     */
    boolean removeFriend(Long userId, Long friendUserId, String tenantId);
    
    /**
     * 检查是否为好友
     *
     * @param userId 用户ID
     * @param friendUserId 好友用户ID
     * @param tenantId 租户ID
     * @return 是否为好友
     */
    boolean isFriend(Long userId, Long friendUserId, String tenantId);
    
    /**
     * 更新好友备注
     *
     * @param userId 用户ID
     * @param friendUserId 好友用户ID
     * @param tenantId 租户ID
     * @param remark 备注
     * @return 是否成功
     */
    boolean updateFriendRemark(Long userId, Long friendUserId, String tenantId, String remark);
}
